package com.study.model.mdao;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.alibaba.fastjson.JSONObject;
import com.study.model.pojo.Orderform;
/**
 * 订单概述表mapper
 * @author 郭星
 *
 */
@Mapper
public interface OrderFormMapper {
	
	/**
	 * 按id查询
	 * @param id
	 * @return
	 */
	JSONObject findByIds(Integer ids);
	
	/**
	 * 查找最大值id
	 * @return
	 */
	Integer findMaxId();
	
	/**
	 * 修改订单商品总数和金额
	 * @param d
	 * @param count
	 * @return
	 */
	int updateSumCount(@Param("sum")double d, @Param("count")Integer count, @Param("id")Integer id);
	
	/**
	 * 插入一个订单记录
	 * @param titles 标题
	 * @param id 
	 * @param costomers  客户
	 * @param orderid  订单号
	 * @param cartyrs  类别
	 * @param paytypes 支付类别
	 * @param 0  销售机会
	 * @param qmans  签约人
	 * @param givemansto 收货人(地址ID)
	 * @param havetime  发货时间
	 * @param haveoldtime  最晚发货时间
	 * @param endmoney	结款方式
	 * @param fills 员工id
	 * @return
	 */
	int doInsert( @Param("ids")String id, @Param("titles")String titles,@Param("costomers")Integer costomers, @Param("orderid")Integer orderid, 
			@Param("cartyrs")Integer cartyrs, @Param("paytypes")Integer paytypes,@Param("opportunity")Integer opportunity,
			@Param("qmans")Integer qmans,@Param("givemansto")Integer givemansto,@Param("havetime")Date havetime,
			@Param("haveoldtime")Date haveoldtime,@Param("endmoney")Integer endmoney,@Param("fills")Integer fills,@Param("times")Date createdate);

	/**
	 * 修改操作
	 * @param titles
	 * @param costomers
	 * @param orderid
	 * @param cartyrs
	 * @param paytypes
	 * @param opportunity
	 * @param qmans
	 * @param givemansto
	 * @param havetime
	 * @param haveoldtime
	 * @param endmoney
	 * @param fills
	 * @return
	 */
	int doUpdate(@Param("id")Integer id,@Param("status")Integer status,@Param("titles")String titles, @Param("costomers")Integer costomers, @Param("orderid")Integer orderid, 
			@Param("cartyrs")Integer cartyrs, @Param("paytypes")Integer paytypes,@Param("opportunity")Integer opportunity,
			@Param("qmans")Integer qmans,@Param("givemansto")Integer givemansto,@Param("havetime")Date havetime,
			@Param("haveoldtime")Date haveoldtime,@Param("endmoney")Integer endmoney,@Param("fills")Integer fills);
	
	
	/**
	 * 分页带条件查询
	 * @param selects
	 * @param selectinput
	 * @param currentPage
	 * @param pagesize
	 * @param allids 客户id
	 * @return
	 */
	List<JSONObject> findByQueryOrder(@Param("selects")String selects,@Param("selectinput") String selectinput,
			@Param("currentPage") int currentPage,@Param("pagesize") int pagesize,@Param("list")List<Integer> list
			,@Param("uid")Integer uid,@Param("show")Integer show);
	
	/**
	 * 删除一个订单
	 * @param id
	 * @return
	 */
	int deletes(Integer id);
	
	/**
	 * 查询对应订单的已回款金额
	 * @param id
	 * @return
	 */
	BigDecimal findHuikuanByOid(Integer id);
	
	/**
	 * 查询一开发票的回款金额
	 * @param id
	 * @return
	 */
	BigDecimal findHuikuanByOidYes(Integer id);
	
	/**
	 * 订单完成
	 * @param id
	 * @return
	 */
	int updateOrderOk(Integer id);
	
	/**
	 * 修改订单为执行中
	 * @param id
	 * @return
	 */
	int updateOrderNo(Integer id);
	
	/**
	 * 查询对应客户id的订单信息
	 * @param id
	 * @return
	 */
	List<JSONObject> findOrderByCus(Integer id);
	
	/**
	 * 添加退货记录
	 * @param custid
	 * @param orderid
	 * @param gid
	 * @param users
	 * @param quatity
	 * @param havetime
	 * @param doback
	 * @param desc
	 * @return
	 */
	int addReturnGoodsItem(String gooid, String orderid,
			String quatity, String odetid, String doback, String desc
			, String users, Date havetime);
	
	/**
	 * 修改订单的收货地址
	 * @param aid
	 * @param oid
	 * @return
	 */
	int updateAddr(Integer aid,Integer oid);
	
	/**
	 * 查询对应客户可以维修的订单
	 * @param custid
	 * @return
	 */
	List<JSONObject> findOrder(String custid);
	
	/**
	 * 根据客户id查询所有记录
	 * @param id
	 * @return
	 */
	Integer findCountById(String id);
}
